package com.lry.entity;

import com.lry.core.Log;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class AppendEntriesRequest implements Serializable {

    //领导人的任期
    private long term;

    // 	领导人 ID 因此跟随者可以对客户端进行重定向（译者注：跟随者根据领导人 ID 把客户端的请求重定向到领导人，比如有时客户端把请求发给了跟随者而不是领导人）
    private int leaderId;

    //紧邻新日志条目之前的那个日志条目的索引
    private long preLogIndex;

    //紧邻新日志条目之前的那个日志条目的任期
    private long preLogTerm;

    //需要被保存的日志条目（被当做心跳使用时，则日志条目内容为空；为了提高效率可能一次性发送多个）
    private Log[] entries;

    //领导人的已知已提交的最高的日志条目的索引
    private long leaderCommit;
}
